\begin{lstlisting}[frame=shadowbox, language=C, numbers=left, breaklines=true, basicstyle=\footnotesize]
#include "Imprimir_stdin.h"

int imprimir_lineas_buffer(char* buffer, int tamano) {
   //imprimo todos los parrafos que esten almacenados dentro del buffer
   int pos;
   int pos_final= tamano -1;

   while ((pos = buscar_ultimo_fin_linea (buffer,pos_final)) !=-1){
      if (fwrite (buffer+pos+1,sizeof(char),pos_final-pos,stdout) != (pos_final-pos))
         return -1;

      pos_final = pos;
   }
   if (fwrite (buffer,sizeof(char),pos_final+1,stdout)!= (pos_final+1)) //imprimo el ultimo parrafo
      return -1;
return 0;
}

//retorna la posicion del ultimo fin de linea
int buscar_ultimo_fin_linea (const char *buffer, int tam_buffer) {
   int i;

   for (i= tam_buffer -1 ; i >= 0; i--)
   {
      if ( buffer[i]==FIELD_SEPARATOR )
         return i;
   }
   return -1;//no hay fin de linea en el buffer
}
\end{lstlisting}
